﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//一维数组
/*int main()
{
	int arr[5] = {1,2,3,4,5};//完全初始化
	//int arr2[100] = { 1,2,3,4,5,6,7 };//不完全初始化，剩余的默认为0
	//int arr3[10];//数组arr3的类型是 int [10]
	//printf("%d\n", arr[2]);//打印元素用下标
	
	//输入数组内容
	for (int j = 0; j < 5; j++)
		scanf("%d", &arr[j]);

	//输出数组内容
	for (int i = 0; i < 5; i++)//打印数组元素
		printf("%d ", arr[i]);



	return 0;
}*/


/*int main()
{
	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };//这个个数组10个元素
	int arr[] = { 0 };//这个数组1个元素
}*/

//⼀维数组在内存中的存储，，%p访问地址
/*int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("&arr[%d] = %p\n ", i, &arr[i]);
	}
	return 0;
}*/

//sizeof 计算数组元素个数
//int main()
//{
//	int arr[10] = { 1,2,3,4,5 };
//	printf("%zd\n", sizeof(arr));//计算的是数组所占内存空间的总⼤⼩，单位是字节。
//	printf("%d\n", sizeof(arr[0]));//计算⼀个元素的⼤⼩，单位是字节
//	printf("%d\n", sizeof(arr) / sizeof(arr[0]));//计算数组元素个数
//	return 0;
//}

//二维数组
//int main（）
//{
//	int arr1[3][5] = {1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};//完全初始化，表示二维数组---三行五列
//	int arr2[3][5] = { 1,2 };//不完全初始化，剩余的元素默认位0
//	int arr3[3][5] = { 1,2,3,4,5,6,7 };
// 
//	int arr4[3][5] = { {1,2},{3,4,5 }, { 6,7 }};//按照行初始化，三行，后面默认为0；
//	int arr[3][5] = { (1,2),(3,4)};//err
//	return 0;
//}


//int main()
//{
//	int arr[][5] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 };//初始化时行可以省略，列不能
//
//	int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
//	printf("%d\n", arr[1][2]);//下标是从0开始的。表示第二行第三列
//	printf("%d\n", arr[0][0]);//
//	printf("%d\n", arr[3][5]);
//	return 0;
//}


//二位数组输入输出
//int main()
//{
//	int arr[3][5] = { 0 };
//	//输入
//	int i = 0;
//	for (i = 2; i >=0; i--)//三行
//	{
//		int j = 0;
//		for (j = 0; j < 5; j++)//5列
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//
//	输出
//	for (i = 0; i < 3; i++)
//	{
//		int j = 0;
//		for (j = 0; j < 5; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//二维数组在内存中的存储，，，⼆维数组中的每个元素都是连续存放
//int main()
//{
//	int arr[3][5] = { 0 };
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		int j = 0;
//		for (j = 0; j < 5; j++)
//		{
//			printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
//		}
//	}
//
//	return 0;
//}



//变⻓数组
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);//30
//	int arr[n];//
//
//	return 0;
//}